package com.ecommerce.onion.domain.service;

import com.ecommerce.onion.domain.Product;

import java.util.UUID;
/**
 * @packageName: domain（领域.服务包）
 * @className: OrderService(订单服务)
 * @description: 定义订单服务
 * @author: luds
 * @version: v1.0
 * @date: 2021-03/25
 */
public interface OrderService {
    /**
     * 由此产品创建订单，并返回订单ID
     * @param product 产品实例
     * @return 返回订单ID
     */
    UUID createOrder(Product product);

    /**
     * 往此订单ID上追加产品
     * @param id 订单ID
     * @param product 产品实例
     */
    void addProduct(UUID id, Product product);

    /**
     * 完成此ID的订单
     * @param id 订单ID
     */
    void completeOrder(UUID id);

    /**
     * 从订单里删除此ID的产品
     * @param id 订单ID
     * @param productId 产品ID
     */
    void deleteProduct(UUID id, UUID productId);
}
